package com.lcx.movie.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lcx.movie.entity.Cinema;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 影院数据访问层接口，继承自 MyBatis-Plus 的 BaseMapper，并扩展了与影院相关的自定义查询方法。
 *
 * @version 1.0
 * @author lcx
 * @date 2025/2/9 11:25
 */
@Mapper
public interface CinemaMapper extends BaseMapper<Cinema> {

    /**
     * 根据电影 ID 查询关联的影院列表。
     *
     * @param movieId 电影 ID
     * @return 关联该电影的影院列表
     */
    List<Cinema> setCinemasByMovieId(Integer movieId);
    /**
     * 根据邮箱判断管理员属于哪个影院
     * @param userEmail 用户邮箱
     * @return 影院集合
     */
    public Cinema selectCinemaByEmail(@Param("userEmail") String userEmail);

    Cinema findCinemaById(Long cinemaId);

    /**
     * 分页查看平台影院管理 （影院名称）
     * @param cinemaName 影院名
     * @return 影院集合
     */
    public List<Cinema> selectCinemaPage(@Param("cinemaName")String cinemaName);

    /**
     * 平台新增影院
     * @param cinema 影院对象
     * @return 受影响的行数
     */
    public int insertCinema(Cinema cinema);

    /**
     * 平台修改影院
     * @param cinema 影院对象
     * @return 受影响的行数
     */
    public int updateCinema(Cinema cinema);

    /**
     * 平台删除影院
     * @param cinemaId 影院id
     * @return 受影响的行数
     */
    public int deleteCinema(@Param("cinemaId")Integer cinemaId);

    /**
     * 平台管理员新增电影时，查询所有的影院
     * @return 影院集合
     */
    public List<Cinema> getCinemas();

}